package com.example.coolweather.service;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;

/*创建定时任务
为了保证软件不会消耗过多的流量，这里将时间间隔设置为8小时，8小时后AutoUpdateReceiver的onStartCommand()方法就会重新执行，
这样也就实现后台定时更新的功能了。
*/
public class AutoUpdateService extends Service {
    private final String TAG = "lch-AutoUpdateService";
    public AutoUpdateService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    // 每8小时执行一次
    public int onStartCommand(Intent intent, int flags, int startId) {
        updateWeather();
        updateBingPic();
        // 定时服务
        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        int setTime = 8 * 60 * 60 * 1000; // 单位毫秒，8小时
        long triggerAtTime = SystemClock.elapsedRealtime() + setTime;
        Intent it = new Intent(this, AutoUpdateService.class);
        PendingIntent pi = PendingIntent.getService(this,0,it,PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
        manager.cancel(pi);
        manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);
        return super.onStartCommand(intent, flags, startId);
    }

    // 更新天气信息
    private void updateWeather() {
        Log.d(TAG, "模拟天气更新，从网络获取天气数据，更新Share缓存数据，不更新界面");
    }

    // 更新每日一图
    private void updateBingPic() {
        Log.d(TAG, "模拟背景图片更新，从网络获取图片，更新Share缓存数据，不更新界面");
    }
}